GtkAccessibleStateChange changed_states,
GtkAccessiblePropertyChange changed_properties,
GtkAccessibleRelationChange changed_relations,
- GtkAccessiblePlatformChange changed_platform,
GtkAccessibleAttributeSet *states,
GtkAccessibleAttributeSet *properties,
GtkAccessibleAttributeSet *relations)
GVariant *v = g_variant_new_take_string (label);
emit_property_changed (self, "accessible-description", v);
}
+}
+
+static void
+gtk_at_spi_context_platform_change (GtkATContext *ctx,
+ GtkAccessiblePlatformChange changed_platform)
+{
+ GtkAtSpiContext *self = GTK_AT_SPI_CONTEXT (ctx);
+ GtkAccessible *accessible = gtk_at_context_get_accessible (ctx);
+ GtkWidget *widget;
+
+ if (!GTK_IS_WIDGET (accessible))
+ return;
+
+ widget = GTK_WIDGET (accessible);
+ if (!gtk_widget_get_realized (widget))
+ return;
if (changed_platform & GTK_ACCESSIBLE_PLATFORM_CHANGE_FOCUSABLE)
{
gobject_class->dispose = gtk_at_spi_context_dispose;
context_class->state_change = gtk_at_spi_context_state_change;
+ context_class->platform_change = gtk_at_spi_context_platform_change;
obj_props[PROP_BUS_ADDRESS] =
g_param_spec_string ("bus-address", NULL, NULL,
GtkAccessibleStateChange changed_states,
GtkAccessiblePropertyChange changed_properties,
GtkAccessibleRelationChange changed_relations,
- GtkAccessiblePlatformChange changed_platform,
GtkAccessibleAttributeSet *states,
GtkAccessibleAttributeSet *properties,
GtkAccessibleAttributeSet *relations)
{
}
+static void
+gtk_at_context_real_platform_change (GtkATContext *self,
+ GtkAccessiblePlatformChange change)
+{
+}
+
static void
gtk_at_context_class_init (GtkATContextClass *klass)
{
gobject_class->finalize = gtk_at_context_finalize;
klass->state_change = gtk_at_context_real_state_change;
+ klass->platform_change = gtk_at_context_real_platform_change;
/**
* GtkATContext:accessible-role:
/* There's no point in notifying of state changes if there weren't any */
if (self->updated_properties == 0 &&
self->updated_relations == 0 &&
- self->updated_states == 0 &&
- self->updated_platform == 0)
+ self->updated_states == 0)
return;
GtkAccessibleStateChange changed_states =
GTK_AT_CONTEXT_GET_CLASS (self)->state_change (self,
changed_states, changed_properties, changed_relations,
- self->updated_platform,
self->states, self->properties, self->relations);
g_signal_emit (self, obj_signals[STATE_CHANGE], 0);
self->updated_properties = 0;
self->updated_relations = 0;
self->updated_states = 0;
- self->updated_platform = 0;
}
/*< private >
gtk_at_context_platform_changed (GtkATContext *self,
GtkAccessiblePlatformChange change)
{
- self->updated_platform |= change;
+ GTK_AT_CONTEXT_GET_CLASS (self)->platform_change (self, change);
}
GtkAccessibleStateChange changed_states,
GtkAccessiblePropertyChange changed_properties,
GtkAccessibleRelationChange changed_relations,
- GtkAccessiblePlatformChange changed_platform,
GtkAccessibleAttributeSet *states,
GtkAccessibleAttributeSet *properties,
GtkAccessibleAttributeSet *relations);
+
+ void (* platform_change) (GtkATContext *self,
+ GtkAccessiblePlatformChange changed_platform);
};
GdkDisplay * gtk_at_context_get_display (GtkATContext *self);
GtkAccessibleStateChange changed_states,
GtkAccessiblePropertyChange changed_properties,
GtkAccessibleRelationChange changed_relations,
- GtkAccessiblePlatformChange changed_platform,
GtkAccessibleAttributeSet *states,
GtkAccessibleAttributeSet *properties,
GtkAccessibleAttributeSet *relations)